Table 다루기
✒️ 2025-06-02 14:16 내용 수정
DDL을 이용한 테이블 생성 및 편집
- 테이블 편집은 DDL(Data Definition Language)을 사용한다.
- 데이터를 변경할 때는 DML(Data Manipulation Language)을 사용한다.
PostgreSQL 참고 사항
- 컬럼 수정 시
ALTER COLUMN구문으로 작성한다. - 데이터 타입 수정 시
TYPE키워드가 필요하다.
ALTER TABLE test ALTER COLUMN name TYPE VARCHAR(50);
1. 테이블 생성
1) pgAdmin 사용 시
- 왼쪽의 Servers - Databases - DB이름 - Schemas의 public을 들어간 후, Tables에 우클릭을 눌러 Create - Table을 선택한다.

- 테이블의 이름을 작성한다.

- 상단의 Columns 탭에서
+기호를 눌러 컬럼을 추가한다. - Columns을 추가한 후 Save를 누르면 테이블이 생성된다.

2) psql shell 사용 시
- DDL을 Shell에 그대로 입력한다.
- 엔터 구분 없이 한 줄로 써도 된다.
CREATE TABLE Customer (
customer_id INT,
firstname VARCHAR(50),
lastname VARCHAR(50),
email VARCHAR(100),
primary key (customer_id)
);

2. 테이블 변경
1) 컬럼 추가
ALTER TABLE 테이블이름 ADD COLUMN 컬럼이름 데이터타입(크기);
ALTER TABLE Customers ADD COLUMN email varchar(255);
2) 컬럼 변경
- 컬럼 수정 시
ALTER COLUMN구문으로 작성한다. - 데이터 타입 수정 시
TYPE키워드가 필요하다.
ALTER TABLE 테이블이름 ALTER COLUMN 컬럼이름 TYPE 데이터타입(크기);
ALTER TABLE 테이블이름 ALTER COLUMN 컬럼이름 SET DATA TYPE 데이터타입(크기);
ALTER TABLE Customers ALTER COLUMN email TYPE varchar(255);
ALTER TABLE Customers ALTER COLUMN email SET DATA TYPE varchar(255);
- 컬럼 변경 SQL문의 경우 각 DB별로 문법이 다르다.
-- ORACLE
ALTER TABLE 테이블명 MODIFY (컬럼명 타입);
-- MYSQL
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입;
-- POSTGRESQL
ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 TYPE 타입;
| DBMS | 기본 문법 예시 | 특징 요약 |
|---|---|---|
| MySQL | ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입; |
MODIFY COLUMN 사용, 제약 조건 함께 명시 필요 |
| Oracle | ALTER TABLE 테이블명 MODIFY (컬럼명 타입); |
MODIFY 사용, 여러 컬럼 동시 변경 가능 |
| PostgreSQL | ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 TYPE 타입; |
ALTER COLUMN TYPE 사용, USING 절로 변환 지정 가능 |
pgAdmin 사용 시
- 데이터 변경 시 왼쪽 탭에서 생성한 Table에 우클릭 후 View/Edit Data - All Rows를 선택하면 SELECT 쿼리 스크립트와 실행 결과가 같이 뜬다.


- 개별 스크립트를 작성할 땐 Table - Scripts에서 사용할 Script를 선택한다.
- 용도별로 Script 생성이 나와있으며, 선택 시 각 동작의 예제가 작성된 Script가 뜬다.


3. 데이터 추가
- DML의
INSERT INTO를 사용하여 데이터를 테이블에 추가한다. - 테이블이름 이후에 오는
()에 컬럼을 지정하면 해당 컬럼에만 값을 넣고, 지정하지 않은 컬럼에는 설정에 따라 자동값, 기본값, NULL값이 자동으로 들어간다.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES
(컬럼1_데이터1, 컬럼2_데이터1, ...),
(컬럼1_데이터2, 컬럼2_데이터2, ...),
(컬럼1_데이터3, 컬럼2_데이터3, ...);
INSERT INTO Customers (customer_id, name) VALUES
(1, 'kim'),
(2, 'ahn'),
(3, 'choi');
4. 데이터 수정
- DML의
UPDATE를 사용하여 데이터를 수정할 수 있다. WHERE조건절이 없다면 컬럼 전체를 새 데이터로 바꾸기 때문에 조건에 따라 주의해야 한다.
UPDATE 테이블이름 SET 컬럼 = 바꿀데이터 [WHERE 조건절];
UPDATE Customers SET is_vip = false;
UPDATE Customers SET name = 'park' WHERE customer_id = 1;
5. 테이블 제거
- DDL의
DROP명령어를 사용하여 테이블을 제거한다.
DROP TABLE 테이블이름;
1) pgAdmin 사용 시
- pgAdmin에 테이블 삭제 시 왼쪽 데이터 베이스 목록 상에는 바로 반영되지 않기에 데이터베이스 - postgres를 우클릭해서 Refresh하면 변경 사항이 반영된다.

